/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package sd_proj1.interfaces;

import sd_proj1.monSolution.FifoNode;

/**
 *
 * @author Pedro Costa Correia - 32795
 * @author Valter Pedro Lopes Vicente - 39360
 */
public interface IOwnerFifo {

	/**
	 * A dona lê o pedido seguinte da fila (originado pela dona).
	 * @return A identificação na fila do pedido seguinte.
	 */
	public FifoNode readRequest();
	
	/**
	 * Setter da quantidade de produtos que são necessários a dona transportar da oficina para a loja (originada pela dona).
	 * @param nProductsTransport Quantidade de produtos que são necessários transportar.
	 */
	public void setNProductsTransport(int nProductsTransport);

	/**
	 * Getter da quantidade de produtos que são necessários a dona transportar da oficina para a loja (originada pela dona).
	 * @return Quantidade de produtos que são necessários transportar.
	 */
	public int getNProductsTransport();

	/**
	 * Getter do valor do parâmetro booleano que define se todos os artesãos estão mortos ou não (originada pelo artesão).
	 * @return Verificação se os artesãos estão mortos ou não.
	 */
	public boolean isAllCraftsDead();

	/**
	 * É adicionado um pedido vazio à fila de espera - necessário para a dona sair do "wait" em que se encontra (originada pela dona).
	 */
	public void emptyRequest();
}
